package main

import "fmt"

func changeElement(arr [5]int) {
	arr[0] = 0
}

func changeElementByPointer(arr *[5]int) {
	arr[0] = 0
}

func main() {
	arr := [5]int{1, 2, 3, 4, 5}
	//值类型无法修改原数组的内存。因为值传递会把数组内容完整的复制一份给函数。值传递需要占用更多的内存
	changeElement(arr)
	fmt.Println(arr[0])
	//传递地址数据，会导致方法内的指针变量只想当前变量的内存地址，针对指针指向内容的修改回反映到原数组上面
	changeElementByPointer(&arr)
	fmt.Println(arr[0])
}
